package model;

import java.io.Serializable;

import javax.persistence.*;

import util.Converter;
import dto.HotelDTO;

import java.util.Date;


/**
 * The persistent class for the Hotel database table.
 * 
 */
@Entity
@Table(name="Hotel")
@NamedQuery(name="Hotel.findAll", query="SELECT h FROM Hotel h")
public class Hotel implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private int idElementoBase;

	private String città;

	@Lob
	private String descrizione;

	private String indirizzo;

	private String numTelefono;

	@OneToOne
	@JoinColumn(name="idElementoBase",insertable=false, updatable=false)
	private ElementoBase elemento;

	public Hotel() {
	}
	
	public Hotel(HotelDTO dto,boolean crea) {
		this.città = dto.getCittà();
		this.descrizione = dto.getDescrizione();
		this.idElementoBase = dto.getIdElementoBase();
		this.indirizzo = dto.getIndirizzo();
		this.numTelefono = dto.getNumTelefono();

	}
	
	public Hotel(HotelDTO dto) {
		this.città = dto.getCittà();
		this.descrizione = dto.getDescrizione();
		this.idElementoBase = dto.getIdElementoBase();
		this.indirizzo = dto.getIndirizzo();
		this.numTelefono = dto.getNumTelefono();
		this.elemento = Converter.convertFromDTO(dto.getElemento());
	}


	public int getIdElementoBase() {
		return this.idElementoBase;
	}

	public void setIdElementoBase(int idElementoBase) {
		this.idElementoBase = idElementoBase;
	}

	public String getCittà() {
		return this.città;
	}

	public void setCittà(String città) {
		this.città = città;
	}

	public String getDescrizione() {
		return this.descrizione;
	}

	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}

	public String getIndirizzo() {
		return this.indirizzo;
	}

	public void setIndirizzo(String indirizzo) {
		this.indirizzo = indirizzo;
	}

	public String getNumTelefono() {
		return this.numTelefono;
	}

	public void setNumTelefono(String numTelefono) {
		this.numTelefono = numTelefono;
	}

	public ElementoBase getElemento() {
		return elemento;
	}

	public void setElemento(ElementoBase elemento) {
		this.elemento = elemento;
	}


}